#ifndef __LUNA_ISound_h__
#define __LUNA_ISound_h__

#include "LUNA_Common.h"

namespace LUNA
{
	class LunaExport ISound
	{
	public:
		ISound( const std::string &type );
		virtual ~ISound();
		
		virtual void update() = 0;
		
		const std::string &getType() const;

		virtual SoundPlayState getPlayState() const = 0;
		virtual void setPlayState( SoundPlayState state ) = 0;
		
		virtual void setVolume( float volume ) = 0;
		virtual void _setMasterVolume( float volume ) = 0;
		
	protected:
		float getMasterVolume() const;

	protected:
		const std::string mType;
		float mMasterVolume;
	};
}

#endif